package br.com.gesclub.jsf.controller;

import br.com.gesclub.business.service.LocalEventoService;
import br.com.gesclub.business.model.LocalEvento;

import static br.com.gesclub.jsf.controller.CrudState.*;

public class LocalEventoController extends BaseController {

    private LocalEvento localEvento;
    private LocalEventoService localEventoService;

    private CrudState state;

    public LocalEventoController() {
        localEvento = new LocalEvento();
    }

    public String prepareToCreate() {
        setState(CREATE);
        return "/pages/LocalEvento/LocalEventoSaveUpdate";
    }
    public String prepareToUpdate() {
        setState(UPDATE);
        return "/pages/LocalEvento/LocalEventoSaveUpdate";
    }
    public String prepareToRead() {
        setState(CrudState.READ);
        return "/pages/LocalEvento/LocalEventoConsulta";
    }
    public String prepareToDelete() {
        setState(DELETE);
        return "";
    }

    public String saveOrUpdate() {
        localEventoService.saveOrUpdate(localEvento);
        addSuccesulMessage("Registro incluído com sucesso");
        setState(CREATE_NEW);

        return "/pages/LocalEvento/LocalEventoSaveUpdate";
    }




    public CrudState getState() {
        return state;
    }
    public void setState(CrudState state) {
        this.state = state;
    }

    public LocalEvento getLocalEvento() {
        return localEvento;
    }
    public void setLocalEvento(LocalEvento localEvento) {
        this.localEvento = localEvento;
    }


    // Sets para o spring
    public void setLocalEventoService(LocalEventoService localEventoService) {
        this.localEventoService = localEventoService;
    }
}

enum CrudState {

    CREATE,
    READ,
    UPDATE,
    DELETE,
    CREATE_NEW

}
